Fellow of the Business Platform Development
LINE の Business Platform 開発担当フェローの Matsuno です。今回は Spring Boot でアプリケーションを開発した場合のメトリクスの勘所についてご紹介しようと思います。 我々のチームでは Kotlin + Spring Boot での開発がデファクトスタンダードとなっているのですが、正直まだまだこのテクニカルスタックで開発しているエンジニアは日本では少ないのです。そこで、実際の運用の雰囲気を感じていただければと思いまして今回の記事を書くことにしました。 メトリクス取得の基本 我々のチームではメトリクスの格納先として Prometheus を利用しています。Prometheus で格納したデータを元にアラートを発出したり、grafana でレンダリングしたりできるので便利です。後からクエリでデータを集計できるので、柔軟な運用が可能となっています。 Prometheus にデータを収集してもらうには Prometheus の形式でテキストデータを出力する HTTP のエンドポイントがあれば良いです。 具体的には以下のようなフォーマットで出力しま
LINE 株式会社 B2B Platform 開発担当フェローの Matsuno です。 LINE の Business Platform ではメインのデータベースとして MySQL を利用しています。MySQL は非常に高速に動く OSS の RDBMS なので、とても便利に利用させていただいております。 MySQL はとても高速なのですが、うっかり index を使わないクエリを発行した場合に実行がとても遅くなってしまうことがあります。LINE の Business Platform はとても多くのお客様が利用されるので、B2B としては異例なほどトラフィックが多く、少し遅いクエリが発生した結果としてサイト全体がダウンしてしまう可能性もあります。 そこで、防御策として我々は ExplainPolice とよんでいる手法を長年採用しているので、それを今回はご紹介しようと思います。 ExplainPolice とは 複雑なクエリを実装する際には、クエリの実行計画をきちんと考えて実装することが大事ですね。 MySQL では EXPLAIN 文を利用することで、クエリの実行計画を調べること
はじめに LINE株式会社の松野です。 先日、LINE BOT API Trial Accountが発表され、熱狂的に世界中のデベロッパーに迎えられました。今まで契約を締結した企業デベロッパーしか開発することができなかった LINEのBotアカウントを個人でも簡単に開発できるようになったからです。そういった中で、なぜ我々がLINE BOT API Trial AccountのSDKを開発するに至ったのか、そしてどうやって1週間でリリースできたのか。その経緯について以下に解説させていただきます。 Bot SDK を作ることになったワケ LINE BOT API Trial Accountが公開されてからまもなく社内でもたくさんのエンジニアたちが 開発にとりかかりました。 そこで、彼らは気づいてしまったのです。。この API を使ってボット作るの大変なのでは??と。 特に、Java などの静的言語の場合には、JSON をマッピングするためのクラスをゴリゴリと書く必要があります。LINE BOT API Trial Accountの場合には、API のエンドポイントも多く、やりとりするメッセ